package com.imau.controller;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;

@WebServlet("/requst")
public class RequsetServletDemo extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {


        //1.获取请求方式
        System.out.println("请求方式==="+req.getMethod());

        System.out.println("虚拟路径==="+req.getContextPath());

        System.out.println("URI==="+req.getRequestURI());

        System.out.println("URL==="+req.getRequestURL());

        //字符形式
        System.out.println("GET请求的获取参数==="+req.getQueryString());

        //2.请求体信息 ，post 以表单提交
        // 字节流：上传文件 音频 视频 图片 二进制存储 -> 数据类型  10 不同形式

        //纯文字 文本 缓存的读字符流 JSON 数据交换使用
        //BufferedReader reader = req.getReader();

        //username=admin&password=123456
       // String datas = reader.readLine();

        // 字符串分割：很费时
//        String reqparames[]= datas.split("&");
//
//        for(String param : reqparames)
//        {
//            String items[]= param.split("=");
//            System.out.println(items[0] +"====>"+items[1]);
//        }

        // 3.只获取去请求参数 GET POST 请求

//        String uname = req.getParameter("username");
//        String upass = req.getParameter("password");
//        System.out.println(uname+"===>"+upass);


//        req.getParameter(); //参数名 ,前端传递过来的参数名字。
        //多选框
        //keys values Map.Entry Set集合 无序 list
        Map<String, String[]> parameterMap =req.getParameterMap();
        for(Map.Entry<String, String[]> entry : parameterMap.entrySet())
        {
            System.out.println(entry.getKey()+"===>"+ Arrays.asList(entry.getValue()));
        }

//        req.getParameterMap(); //参数名和参数值 以Map集合返回
//        req.getParameterNames(); //返回所有参数名

        Enumeration<String> parameterNames = req.getParameterNames();
        while (parameterNames.hasMoreElements())
        {  String parameterName = parameterNames.nextElement();
            System.out.println(parameterName+"----->"+req.getParameterValues(parameterName)[0]);

        }

//        req.getParameterValues(); //返回参数值 ,参数名




    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }
}
